package com.yonyou.cyxdms.basedata.service.dto.vehiclemodel;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.*;
import com.yonyou.cyxdms.framework.bean.dto.base.DMSBaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@ApiModel(value = "ProductQueryDTO", description = "产品Page表格 - 查询DTO")
public class ProductQueryDTO extends DMSBaseDTO {
    @ApiModelProperty(value = "公告号")
    private String noticeNo;
    /**
     * 品牌ID
     */
    @ApiModelProperty(value = "品牌ID")
    private Long brandId;

    /**
     * 车系ID
     */
    @ApiModelProperty(value = "车系ID")
    private Long seriesId;

    /**
     * 车型ID
     */
    @ApiModelProperty(value = "车型ID")
    private Long modelId;

    /**
     * 配置_ID
     */
    @ApiModelProperty(value = "配置ID")
    private Long packageId;

    /**
     * 选装ID
     */
    @ApiModelProperty(value = "选装ID")
    private Long optionId;

    /**
     * 整车产品Id
     */
    @ApiModelProperty(value = "整车产品Id")
    private Long productId;

    /**
     * 整车产品代码
     */
    @ApiParam(name = "整车产品代码", value = "整车产品代码")
    private String productCode;

    /**
     * 整车产品代码
     */
    @ApiParam(name = "整车产品名称", value = "整车产品 名称")
    private String productName;

    /**
     * 选装代码
     */
    @ApiModelProperty(value = "选装代码")
    private String optionCode;


    /**
     * 整车产品描述
     */
    @ApiModelProperty(value = "整车产品描述")
    private String productDesc;

    /**
     * 内饰色
     */
    @ApiModelProperty(value = "内饰色ID")
    private Long trimColorId;

    /**
     * 外饰色
     */
    @ApiModelProperty(value = "外饰色ID")
    private Long colorId;

    /**
     * 是，否
     */
    @ApiModelProperty(value = "启用标识")
    private Integer isValid;

    /**
     * 是，否
     */
    @ApiModelProperty( value = "启用时间")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime startDate;


    /**
     * 是否可订购
     */
    @ApiModelProperty(value = "是否可订购")
    private Integer orderStatus;

    /**
     * 是否下发
     */
    @ApiModelProperty(value = "是否下发")
    private Integer isIssue;

    /**
     * 经销商编码
     */
    @ApiModelProperty(value = "经销商编码")
    private String dealerCode;

    /**
     * 经销商名称
     */
    @ApiModelProperty(value = "经销商名称")
    private String dealerName;

    @ApiModelProperty(value = "车辆信息")
    @JsonProperty("vehicleInfo")
    private String vehicleInfo;

}
